И вновь на страницах нашего журнала рубрика «Кто самый большой гик на планете». В этот раз мы не будем касаться темы тюнинга рабочего стола, устанавливать мозаичные менеджеры окон и настраивать автомонтирование. Вместо этого мы расскажем об эффективности выполнения повседневных задач, а если точнее — о приложениях, облегчающих эти задачи.

Если ты перешел на Linux совсем недавно или же работаешь исключительно в графической среде и графических приложениях, то наверняка задаешься вопросом: а зачем столько людей используют консольный софт? Я говорю не о терминале и его мощной командной строке, а о консольных приложениях с псевдографическим интерфейсом, в которых вся визуальная составляющая — это символы (яркий пример из мира Windows — FAR и Norton Commander).

Скорее всего, ты думаешь, что пользователи таких приложений — старперы, которые уже не могут переучиться и привыкнуть к новому. Отчасти это правда, однако есть и другие причины: скорость, удобство и «чистота интерфейса». Консольный софт просто невероятно быстр, им можно управлять не используя мышь, а главное — создать захламленный псевдографический интерфейс просто невозможно, он всегда будет содержать только необходимую информацию, без лишних обвесок и декораций.

Далее я расскажу о десятке приложений для решения повседневных задач: управления файлами, чтения почты, прослушивания музыки и прочего. Сразу скажу, что в списке есть несколько графических приложений (просмотрщик изображений и PDF-ридер), но созданы они с оглядкой на консольный софт — минималистичный интерфейс и полное управление с клавиатуры. Так что все будет честно.

 

Файлы: Midnight Commander

Midnight Commander (или просто mc) — одно из самых известных консольных приложений. Это клон бессмертного Norton Commander, созданный специально для UNIX. Mc можно увидеть на экране ноутбука каждого второго админа, вот только почему-то все они используют его как есть, выжигая себе глаза синим фоном.

На самом деле Midnight Commander поддерживает темы, выбирать которые можно из интерфейса или отредактировав .config/mc/config. Например, чтобы заставить mc использовать не режущую глаза темную тему, достаточно добавить (изменить) такую строку:

skin=dark

Также рекомендую изменить две другие опции для отключения бесполезных строки меню сверху и строки кнопок снизу:

keybar_visible=0
menubar_visible=0

Ну а те, кто не любит стандартный редактор mc и предпочитает юзать другой, должны добавить такую опцию:

use_internal_edit=0

Важная особенность mc — умение показывать и запускать многие типы файлов с помощью внешних приложений. Например, если ты выберешь файл с изображением и нажмешь F3, то увидишь на экране информацию об изображении: формат, размер, глубина цвета и другие данные. Эту информацию mc получает от утилиты identify из пакета ImageMagic. Нажатие Enter запустит просмотрщик изображений (по умолчанию с помощью gqview, see или zgv, какой найдется в системе).

Все привязки типов файлов к приложениям описаны в файле ~/.configs/mc/mc.ext. Он интуитивно понятен, так что при желании конфиг можно изменить, чтобы заставить mc открывать файлы с помощью удобных тебе приложений.

Midnight Commander здорового человека
Midnight Commander здорового человека
 

Файлы по-другому: Nnn

Двухпанельный файловый менеджер не всегда удобен, когда необходимо просто пройтись по каталогам и найти/открыть нужный файл. В этом случае гораздо лучше подойдет nnn — простой и быстрый как молния файловый менеджер без лишних обвесок и со всей необходимой функциональностью для навигации по файловой системе.

Nnn представляет файловое дерево в виде списка с указанием даты модификации и размера файлов. Навигация крайне простая — стрелки вверх/вниз для перемещения по списку, вперед/назад для перехода между каталогами (клавиши h, j, k, l, как в Vim, тоже поддерживаются). Клавиши & и - возвращают к начальному и последнему посещенному каталогу, D открывает подробную информацию о файле, Ctrl + R — для переименования.

В nnn есть система поиска в реальном времени, вызываемая по клавише /, и система закладок. Просто нажми b в нужном каталоге, введи имя закладки и возвращайся к нему когда вздумается с помощью Ctrl + V.

Лаконичный интерфейс nnn
Лаконичный интерфейс nnn
 

Электронная почта: mutt

В среде пользователей UNIX почтовый клиент mutt занимает примерно то же место, что и Vim: его либо ненавидят, либо не могут без него жить. Как и у Vim, у mutt очень высокий порог вхождения, его нельзя просто запустить и начать использовать. Точнее, можно, но всей мощи клиента ты не увидишь. mutt необходимо конфигурировать, долго подстраивая его под себя. Зато в результате ты получишь приложение, с помощью которого можно обработать тонны писем намного быстрее, чем с помощью любого другого клиента.

Рассказывать здесь о том, как конфигурировать mutt, бессмысленно, это слишком обширная тема. Зато в Сети всегда можно найти множество преднастроенных конфигов, один из которых обязательно тебе подойдет (пример для любителей Vim). Существуют даже онлайн-генераторы конфига mutt.

Вот лишь базовый конфиг mutt для подключения к Gmail (имей в виду, тебе необходимо включить поддержку IMAP и создать пароль приложения специально для mutt, если ты используешь двухфакторную аутентификацию):

## Имя отправителя и сортировка от конца к началу
set realname = "Jay Z"
set use_from = yes
set sort = reverse-threads
set sort_aux = last-date-received

## Настройки IMAP/SMTP
set from = zobnin@gmail.com
set imap_user = zobnin@gmail.com
set imap_pass = password
set smtp_url = smtp://yourmail@smtp.gmail.com:587/
set smtp_pass = password
set folder = imaps://imap.gmail.com:993
set spoolfile = +INBOX #or +[Gmail]/Important
set postponed = +[Gmail]/Drafts
set header_cache = ~/.mutt/cache/headers
set message_cachedir = ~/.mutt/cache/bodies
set certificate_file = ~/.mutt/certificates
mutt: простота и эффективность
mutt: простота и эффективность
 

Почта Gmail: Vmail

Пользователи mutt делятся на две группы: те, кто не осилил почтовый клиент и ушел на более привычный и дружелюбный к пользователю, и те, кто остался с mutt навсегда. Среди последних в основном оказываются люди, хорошо знакомые с Vim и Emacs, поэтому даже в mutt они используют похожие хоткеи. Так почему бы просто не написать плагин для Vim или Emacs и не использовать редактор в качестве почтового клиента?

Именно так поступил автор Vmail, почтового клиента, который интегрируется с Vim. Vmail поддерживает исключительно Gmail, зато он просто работает. Единственное, что тебе придется сделать, — установить Vmail:

$ gem install vmail

Добавить свои логин и пароль в конфиг ~/.vmailrc:

username: zobnin@gmail.com
password: myverydifficultpass
name: Evgeny Zobnin

И запустить клиент. Откроется Vim, и на экране появится список писем. Выбираем письмо стрелочками, нажимаем Enter, в нижней части появляется текст письма. Нажимаем еще раз — возвращаемся обратно. Можно удалять письма (,#), помечать звездочкой (,\*) и выполнять другие операции. Vmail имеет развитую систему поиска, поддерживает открытие ссылок в браузере, скачивание вложений и практически все функции, которые только могут понадобиться. А самое главное — это Vim, а значит, при написании писем ты будешь чувствовать себя в своей тарелке (если ты, конечно, поклонник Vim).

Vmail: читаем почту в редакторе
Vmail: читаем почту в редакторе
 

Музыка: MOC

Среди плееров для Linux трудно найти тот, что сравнялся бы по удобству использования с MOC. Это простой консольный плеер, выполненный в стиле двухпанельного файлового менеджера (похоже, это бессмертная идея). С левой стороны находится менеджер файлов, с правой — текущий плей-лист. Ты просто добавляешь нужные файлы в плей-лист с помощью клавиши a либо добавляешь весь каталог с помощью Shift + a (M3U-плейлисты также поддерживаются). Shift + c очищает плей-лист. Предельно простое, понятное и эффективное управление.

Простота использования — далеко не единственное преимущество MOC. Этот плеер имеет клиент-серверную архитектуру, а это значит, что после включения проигрывания ты можешь нажать на q, чтобы закрыть интерфейс. Музыка будет играть в фоне, и ты даже сможешь ее контролировать из командной строки:

$ mocp -s # Остановить воспроизведение
$ mocp -p # Запустить воспроизведение
$ mocp -f # Следующий трек 
$ mocp -r # Предыдущий трек

Эти команды можно повесить на хоткеи рабочего стола или использовать совместно с dmenu. Еще один вариант: иконка в трее.

Как и mc, MOC по умолчанию синий, так что придется править конфиг (заодно добавим поддержку русского для MP3-файлов, содержащих устаревшие ID3-теги). Копируем дефолтовый конфиг:

$ cp /usr/share/doc/moc/config.example ~/.moc/config

Добавляем в него две опции:

Theme = darkdot_theme
ID3v1TagsEncoding = WINDOWS-1251
MOC: музыка в стиле Norton Commander
MOC: музыка в стиле Norton Commander
 

Видео: Mpv

Во времена палеолита, когда компьютеры были большими и медленными, существовал плеер, который был способен проигрывать MPEG4-видео на Pentium 166. Назывался он MPlayer, а его автором был Арпад Герёффи (Árpád Gereöffy). После Арпад отстранился от разработки, и MPlayer начал стагнировать. Сначала на свет появился форк MPlayer 2, а затем mpv.

Ключевая особенность mpv — всеядность. Ему можно скормить буквально все: видео в любых форматах и разрешениях, видеопотоки, аудио и аудиопотоки, изображение с веб-камеры. Там, где VLC споткнется и упадет, mpv спокойно продолжит проигрывание. И даже извечная проблема Linux с хардварным ускорением ему не помеха; он без всяких проблем перекладывает декодирование на плечи видеокарты, скромно сообщая, что в этом режиме видеофильтры работать не будут.

Mpv будет весьма удобен для тех, кто не боится консоли и управления с клавиатуры. Просто запусти его, указав нужный файл в качестве аргумента, а затем управляй воспроизведением с помощью клавиш влево, вправо, PgUp, PgDown, пробел. Если же тебе удобнее рулить мышкой (например, если ты хочешь смотреть видео на Raspberry Pi), есть прекрасная графическая обертка — SMPlayer.

Mpv настолько всеяден, что ты даже можешь скормить ему каталог с музыкой и он сам достанет из него плей-лист и даже покажет на экране обложку альбома
Mpv настолько всеяден, что ты даже можешь скормить ему каталог с музыкой и он сам достанет из него плей-лист и даже покажет на экране обложку альбома
 

Изображения: Feh

Каким должен быть интерфейс по-настоящему гиковского просмотрщика изображений? Правильно, его не должно быть. Feh — крайне простой, но очень быстрый просмотрщик. Просто укажи в качестве аргументов имена файлов, и он выведет их на экран. По умолчанию feh показывает изображения «пиксель в пиксель», это значит, что они не будут масштабированы до размеров экрана/окна. Чтобы этого избежать, можно использовать флаг -F. Также в качестве аргумента можно передать URL для просмотра изображения без скачивания.

Feh умеет отображать контекстное меню, но управлять им удобнее с помощью клавиатуры. Наиболее полезные комбинации:

  • влево/вправо — предыдущее/следующее изображение;
  • вверх/вниз — изменение масштаба;
  • / — подогнать под размер окна;
  • A — включить/выключить сглаживание;
  • d — показать имя файла и номер файла, если их несколько;
  • e — показать тег EXIF;
  • v — полноэкранный режим.

Feh умеет формировать коллажи (флаги -c, -m и -i) и позволяет устанавливать изображение в качестве обоев рабочего стола:

$ feh --bg-scale /путь/до/файла
Feh: просмотрщик без интерфейса
Feh: просмотрщик без интерфейса

INFO

Немногие знают, но просматривать изображения можно даже в голой консоли, без запуска графической среды. Просмотрщик Fim умеет использовать fbdev для вывода картинки в консоль и даже позволяет просматривать изображения в ASCII art.

 

PDF: Zathura

В 2005 году Тор Андерсон (Tor Andersson) выпустил библиотеку MuPDF, которая показывала просто потрясающие результаты скорости рендеринга PDF-документов. Вместе с библиотекой поставлялся простейший просмотрщик, с помощью которого можно было оценить скорость работы библиотеки или быстро открыть простенький документ.

Сегодня MuPDF продолжает развиваться, а просмотрщик до сих пор входит в ее состав. Он невероятно быстр и в целом удобен, но не умеет запоминать позицию чтения и не имеет удобной системы навигации. Зато все эти возможности есть в просмотрщике Zathura, для которого доступен плагин MuPDF (пакет zathura-pdf-mupdf).

Zathura — истинно гиковское приложение, внешне простое, но с большим арсеналом функций. Интерфейса здесь как такового нет, точнее, он есть, но напоминает интерфейс редактора Vim — панель состояния внизу экрана, плюс строка команд, вызываемая по нажатию :. Управление полностью клавиатурное с хоткеями в стиле того же Vim: клавиши h, j, k, l или стрелки для навигации по документу, J и K для переключения между страницами, a и s, чтобы вместить страницу в окно по высоте или ширине, d включает режим отображения страниц в виде разворота, Tab открывает оглавление. Чтобы увидеть подсказку по командам, достаточно открыть строку команд и нажать Tab.

Кроме PDF, zathura поддерживает форматы DjVu, PostScript и ComicBook, но для их просмотра необходимо установить дополнительные плагины:

  • zathura-djvu;
  • zathura-ps;
  • zathura-cb.
Zathura и меню автодополнения
Zathura и меню автодополнения
 

Браузер: ELinks

Держу пари, что ELinks — один из самых странных браузеров из всех, что ты когда-либо видел. И дело вовсе не в его функциональности, а в том, что это консольный браузер, который не умеет отображать картинки, но, как ни странно, поддерживает веб-формы, CSS, кукисы, JavaScript, вкладки, IPv6, параллельную загрузку файлов и скриптование. Сайты в нем выглядят почти неюзабельно, а о веб-приложениях можно забыть, зато он загружает веб-страницу быстрее, чем ты скажешь слово «загрузить».

ELinks не повседневный браузер, но это отличное средство для быстрого открытия документов или проверки сайтов на доступность. Также это отличный браузер для конфиденциального серфинга Сети: многие методы трекинга в нем просто не работают, а та же поддержка JS этому браузеру не особо и нужна (читай: ее можно смело отключить).

У ELinks есть прародитель под названием Links. Это менее функциональный браузер с одной очень интересной особенностью: он умеет работать в графическом режиме, используя при этом тот же движок, что и для рендеринга в терминале. В результате браузер отрисовывает страницу быстрее, чем любой другой графический браузер на планете. К тому же может делать это в голой консоли (да, графический режим в голой консоли с использованием того же fbdev, что и Fim).

Xakep.ru в браузере ELinks
Xakep.ru в браузере ELinks
 

Торренты: rTorrent

rTorrent — один из самых быстрых торрент-клиентов. При получении и отдаче данных rTorrent не записывает/читает файлы обычными методами, как это делают другие клиенты, а отображает файл в оперативную память с помощью mmap() и напрямую копирует данные из памяти сетевого стека в «память файла». На быстрых соединениях такой механизм позволяет достичь намного большей производительности работы приложения.

Однако известность rTorrent получил по другой причине — это практически идеальный вариант для домашнего сервера. Можно запустить клиент внутри screen или tmux и подключаться к нему по SSH вместо использования громоздких веб-интерфейсов.

Как и любое консольное приложение, rTorrent не имеет никаких средств конфигурирования, и для его настройки необходимо править файл ~/.rtorrent.rc. Автор предлагает хороший начальный конфиг, который можно скачать с помощью такой команды:

$ curl -Ls "https://raw.githubusercontent.com/wiki/rakshasa/rtorrent/CONFIG-Template.md" | grep -A9999 '^######' | grep -B9999 '^### END' | sed -re "s:/home/USERNAME:$HOME:" >~/.rtorrent.rc

Стандартный каталог rTorrent — ~/rtorrent. В нем есть два подкаталога: watch и log, во второй клиент сливает свои логи, первый служит для автодобавления торрентов. Просто скопируй torrent-файл в ~/rtorrent/watch/start, и он автоматически попадет в очередь. Копирование в ~/rtorrent/watch/load загрузит торрент в клиент, но не добавит в очередь скачивания. Каталог загрузки файлов: ~/rtorrent/download.

rTorrent не умеет работать в режиме демона (то есть его нельзя запустить в фоне), зато, как я уже говорил, его можно запустить под управлением tmux, а сам tmux отправить в фон. Чтобы это происходило автоматически на этапе загрузки, установи tmux и создай файл /etc/systemd/system/rtorrent.service:

[Unit]
Description=rTorrent Daemon
After=network.target

[Service]
Type=forking
KillMode=none
User=rtorrent
ExecStart=/usr/bin/tmux new-session -c /mnt/storage/rtorrent -s rtorrent -n rtorrent -d rtorrent
ExecStop=/usr/bin/bash -c "/usr/bin/tmux send-keys -t rtorrent C-q && while pidof rtorrent > /dev/null; do sleep 0.5; done"
WorkingDirectory=%h
Restart=on-failure

[Install]
WantedBy=multi-user.target

Это описание юнита systemd, запускающего rTorrent внутри tmux. Активируй его:

$ systemctl --user enable rtorrent

И запусти:

$ systemctl --user start rtorrent

Теперь к rTorrent можно подключиться в любое время с помощью такой команды:

$ tmux attach -t rt

Для отключения нажми Ctrl-b d.

Информация о торренте в rTorrent
Информация о торренте в rTorrent

 

Бонус: инструменты в стиле CLI

Кроме псевдографических полноэкранных приложений, конечно же, есть множество различных инструментов с интерфейсом командной строки. О многих из них я уже рассказывал в прошлых статьях, поэтому сегодня остановлюсь только на четырех:

  • youtube-dl — мощный инструмент для скачивания и просмотра YouTube-видео с помощью MPlayer/mpv;
  • telegram-cli — консольный клиент Telegram, практически бесполезен для каждодневного использования, но может пригодиться в скриптах;
  • googler — удобная утилита для поиска в Google из командной строки;
  • catdoc — утилита для дампа документов формата .doc (несовместима с .docx).

Оцени статью:

Что тебе понравилось больше всего?
Что тебе не понравилось больше всего?